"""
功能描述:实现邮件内容的封装，发送邮件
导包
创建类
创建初始化方法
初始化参数：收件人，发件人，服务器，服务器名称，用户名，密码
创建私有方法
创建实例方法
连接服务琼
登录用户名和密码
发送邮件
关闭连接

"""


# 导包
import os
from appium代码第一周.common.log import log1
from smtplib import SMTP
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# 创建类
class sendemain():
    # 创建初始化方法
    def __init__(self):
        # 初始化参数：收件人，发件人，服务器，服务器名称，用户名，密码
        self.sender ='825622958@qq.com'
        self.receiver='825622958@qq.com'
        self.subject='app自动化测试报告'
        self.username='825622958@qq.com'
        self.password='dfgtfujqrceqbbgd'
        self.server='smtp.qq.com'
    # 创建私有方法
    def __config(self,file):
        #     封装邮件正文
        # 读取文件内容
        with open(file, 'rb') as f:
            main1 = f.read()
            # 组织邮件内容和标题
            self.mag = MIMEMultipart()
            # 添加附件的内容
            att = MIMEText(main1, 'plain', 'utf-8')
            att['Content-Type'] = 'applicattion/octet-stream'
            att['Content-Disposition'] = 'attachment;filename=report.html'
            self.mag.attach(att)
            # 添加邮件的文本内容
            content = 'app自动化测试报告详情，请查收'
            self.mag.attach(MIMEText(content, 'plain', 'utf-8'))
            self.mag['Subject'] = Header(self.sender, 'utf-8')
            self.mag['From'] = self.sender
            self.mag['To'] = self.receiver
        #     封装附件
    # 创建实例方法
    def send(self,file):
        # 连接服务琼
        self.__config(file)
        try:
            s=SMTP()
        # 登录用户名和密码
            s.connect(self.server)
            s.login(self.username,self.password)
        # 发送邮件
            s.sendmail(self.sender,self.receiver,self.mag.as_string())
            log1.info(f'发送成功')
        except Exception as msg:
            log1.info(f'发送失败。系统提示{msg}')
        finally:
            # 关闭连接
            s.close()
if __name__ == '__main__':
    fda =sendemain()
    patj=os.path.dirname(os.path.dirname(__file__))+r'/testreport/1.html'
    fda.send(patj)